V-SYSTEM
1. Въведение
V-System представлява симулатор за
схеми, описани на езика VHDL. Етапите на работа и обмена на данни
между тях са показани на фиг. 1.

Фигура 1. Структура на
V-System
2. Създаване на VHDL
проект
Подготовка на входните
файлове
За всеки отделен проект се създава
нова проектна директория (например с помощтта на Windows
Explorer). За определеност в изложението ще приемем, че проeктната
директория е c:\vhdl\mpis.
Самото описанието на VHDL проекта
се състои от един или няколко текстови файла. Те се създават с
текстов редактор, който не е част от програмата V-System. Проекта,
който ще използваме като пример, е записан във файла
c:\vhdl\mpis\example.vhd. Пълният текст на този пример може да се
намери в Тема 3.
Стартиране на V-System
От инсталационната директория на
пакета V-System се стартира програмата
vsystem.exe
Начално установяване на
V-System
С командата File => Directory се
отива в по-рано създадената проектна директория.
С командата Project => New се
създава файл с описанието на проекта. Името на този файл трябва да
бъде vsystem.ini, а неговото съдържание се попълва автоматично в
процеса на работа с V-System.
С командата Library => New се
създава работна библиотека с име work. В нея ще се записват
резултатите от компилацията на проектните
единици.
Компилация на входния VHDL
файл
Избира се командата File =>
Compile. В прозореца (фиг. 2) се указва името на входния файл и се
натиска клавиша Compile.

Фиг. 2. Прозорец за
избор на файл за компилация
Съобщенията за грешки при компилация
се извеждат в прозореца Transcript. След компилирането на всички
входни файлове прозорецът на компилатора се затваря с натискане на
клавиша Done. Ако при компилацията има грешки то VHDL файла трябва
да се корегира с текстовия редактор и повторно да се
компилира.
3. Симулация на VHDL
проект
Инициализиране на
симулатора
За преминаване в режим на симулация
се използва командата File => Simulate. В прозореца (фиг. 3) се
избира проектната единица (entity), която ще бъде
симулирана.
Тази проектна единица трябва
да представлява тестова установка, т.е. да включва в себе си
както VHDL модела, който ще бъде верифициран, така и процеси
за подаване на входни въздействия.
След инициализирането на екрана се
появяват следните прозорци:

Фиг. 3. Избор на тестова установка
Фиг. 4. Йерархия на VHDL проект
Source - съдържа VHDL текста на
избраната проектна единица;
List - показва резултатите от
симулацията в табличен вид;
Process - показва имената на
процесите, които ще бъдат изпълнени в текущия симулационен
цикъл;
Variables - показва имената и
стойностите на променливите.;
Signals - показва имената и
стойностите на сигналите в проекта;
Wave - показва резултатите във
вид на времедиаграми;
Structure - показва йерархичната
структура на VHDL проекта.
От показания пример се вижда, че за
симулация е избрана архитектурата ADDER8_256 на проектната
единица TESTBENCH. При описанието на TESTBENCH е използван
компонента UUT, на който съответства проектната единица
ADDERN. Използвани са и пакетите STD_LOGIC_1164 и STANDARD.
От своя страна ADDERN е съставен от осем компонента
ADDER.
Стартиране на
симулацията
Симулацията се стартира като в
прозореца Transcript се напише командата run <време>.
Като параметър се указва времето, до което да се извършва
симулацията. Например run 100 us означава, че симулацията ще завърши
след 100 микросекунди симулационно време или по-рано ако се
изчерпи списъка на заплануваните транзакции. Симулацията можа
да бъде прекъсната по всяко време с натискането на екранния клавиш
Break.
Когато е необходимо симулацията да се
повтори от начало, се използва командата File => Restart. Тя
установява симулационното време в нула и заличава от паметта всички
предишни резултати. Подобно рестартиране се налага в следните
случаи:
След промяна и компилация на
някой от входните VHDL файлове;
След добавяне на нови сигнали в
прозореца Wave.
4. Анализ на резултатите от
симулацията
Резултатите от симулацията с
програмата V-System са два типа:
Промени на състоянията на
сигналите, които се визуализират в прозорците Wave и
List;
Съобщения издавани от оператори
assert включени в VHDL проекта - отпечатват се в
прозореца Transcript.
За да се наблюдават определени
сигнали те трябва да бъдат добавени в прозорците Wave и / или List.
Съществуват няколко възможни подхода в зависимост от това дали за
визуализация се избират отделни сигнали или всички сигнали в дадена
област от проекта. В случая под "област от проекта" се разбира
проектна единица (например TESTBENCH) или неин компонент (например
компонента ADDER, генериран от оператора GEN_1).
Избор на единични сигнали
От прозореца Signals с мишката се
избира сигнал;
С командата Signals => Add to
Waveform => Selected signal избрания сигнал се добавя в
прозореца Wave;
С командата Signals => Add to
List => Selected signal избрания сигнал се добавя в прозореца
List.
Избор на всички сигнали в дадена
област от проекта
От прозореца Structure се избира
област от йерархията на проекта;
С командата Signals => Add to
Waveform => Signals in Region всички сигнали в избраната област
се добавят в прозореца Wave;
С командата Signals => Add to
List => Signals in Region всички сигнали в избраната област се
добавят в прозореца List.
Възможно е наведнъж да се добавят
всички сигнали от цялата йерархия на проекта. Това става с командите
Signals => Add to Waveform => Signals in Design или Signals
=> Add to List => Signals in Design.
Представяне на резултатите във вид на
времедиаграми - Wave
В прозореца Wave (фиг. 5) сигналите
се представят по два различни начина в зависимост от типа
им.
Скаларните сигнали се изчертават като последователност от ниски
и високи лигически нива. Когато сигнала е в неопределено или
високоимпедансно състояние неговата времедиаграма има междинно ниво.
Освен това е възможно различните нива на сигналите да се оцветят в
различни цветове с командата Window => Color =>
Wave.
Сигналните вектори се визуализират чрез техните числови
стойности. С командата Options => Signal Options => Radix може
да се избира използваната бройна система: двоична, осмична,
десетична или шестнайсетична. При необходимост да се наблюдават
отделните сигнали във вектора, с мишката се щраква еднократно върху
знака '+' вляво от името на вектора.
Прецизното отчитане на времеинтервали
се извършва с помощта на измервателни курсори. Те се добавят с
командата Cursor => Add.

Фиг. 5. Представяне на
резултатите от симулацията в графичен вид
Представяне на резултатите във вид на
таблица - List
Всеки ред в прозореца List (фиг. 6)
съответства на промяна на стойността на някой от наблюдаваните
сигнали. Предимството на този тип представяне е възможността с
максимална точност да се определи кога е настъпило дадено
събитие.

Фиг. 5. Представяне на
резултатите от симулацията в табличен вид
В първите две колони от таблицата е
показано в кой момент от симулационното време и на кой цикъл на
симулация е настъпила промяната. В останалите колони се отпечатват
стойностите на избраните сигнали. За векторните сигнали може да се
избира желаната бройна система чрез командата Options => Signal
Options => Radix. Символите, които се използват за означаване на
състоянията, зависят от типа на съответния сигнал.